package com.program.facesigninsystem.service;

import com.program.facesigninsystem.entity.SignInActivity;
import com.program.facesigninsystem.entity.SignInLink;
import com.program.facesigninsystem.entity.SignInRecord;
import com.program.facesigninsystem.iteration.dto.AddSigninLinkParam;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ISignInActivityService {

    void addNewActivity(
            String actId,
            String title,
            String createTime,
            String actType,
            String caption,
            String cid,
            String tid,
            int signStopType,
            int signInType,
            int actCircle,
            String originactId,
            String ccid
            );

    void addNewLink(
            String lid,
            int linkType,
            String duration,
            String startTime,
            String endTime,
            int status,
            String actId,
            double location_x,
            double location_y,
            double range
    );

    String selectnowlidbyccid(String ccid);

    void updateLinkStatus(
            String lid,
            int status,
            String startTime,
            String endTime
    );

    Object[] selectActivityByTid(String tid,String createTime);

    List<SignInActivity> selectActivityByMonth(String tid, String createTime);

    Object[] selectLinkByActId(String actId);

    Object[] selectLinkByActId(String actId,int pageSize,int pageNum);
    void updateActivityCircleByID(String actId, int actCircle);

    void deleteActivityByID(String actId);
    SignInActivity selectAct(String lid);

    SignInLink selectLinkByLid(String lid);

    List<Map<String,Object>> selectList(String tid);

    Integer isopen(String tid);

    Integer isgroup(String tid);
    List<Map<String,Object>> selectList1(String tid, LocalDateTime begindate, LocalDateTime enddate);
    List<SignInLink> selectLinkList(String actid);
    Boolean updateLinkDuration(String lid, int duration);

    Boolean addOneNewLink(AddSigninLinkParam addSigninLinkParam);
    Integer selectSignInType(String decodeCode);

    List<SignInActivity> selectAllList(String tid);

    List<SignInRecord> selectContentBylid(String uid, String lid);

    // 根据课程ID获取所有签到活动
    List<SignInActivity> findByCCID(String ccid);
}
